import re

from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 获取数据库连接
from SaaSDevelTool.data_mysql_data import db
# 判断参数类型
from SaaSDevelTool.data_operation import is_number
# 获取时间区间
from SaaSDevelTool.data_datetime_func import get_datatime
# 获取加密包
from SaaSDevelTool.data_encode import aes_decrypt2, encrypt_vue

"""
企业账号密码获取
"""


class SaaSDataTenementCodeQuery(View):
    @error_message_detection
    def get(self, request):
        # 获取企业编号
        tenement_id = request.GET.get("tenement_id")
        # 判断参数
        if not is_number(tenement_id):
            # 返回响应
            return create_response(code=400, msg="企业参数传递错误。")
        # 获取账号与密码
        query_base_info_contact_user_sql = """
            SELECT 
                ssumt.user_mobile,
                u.user_password 
            FROM 
                db_tenement_{}.base_info_contact_user u 
            JOIN  
            	db_saas_center.sum_saas_user_message_table ssumt
			ON 
				u.id = ssumt.user_id
			AND  
				ssumt.user_tenement_id = {}
            WHERE 
                u.manage_status = 0 
            AND 
                 user_name LIKE 'SaaS系统账户@%'
        ;""".format(tenement_id, tenement_id)
        # 获取对应的数据
        query_base_info_contact_user_data = db.findOne(query_base_info_contact_user_sql)
        # 判断参数是否存在
        if not query_base_info_contact_user_data:
            return create_response(code=400, msg="当前企业管理者账号异常，请联系开发人员处理。")
        # 返回对应的响应
        data = {
            "user_mobile": query_base_info_contact_user_data['user_mobile'],
            "user_password": encrypt_vue(aes_decrypt2(query_base_info_contact_user_data['user_password']))
        }
        return create_response(code=200, msg="管理者账号获取成功", data=data)
